package server

import (
	. "com.mgface.disobj/common"
	"fmt"
	log "github.com/sirupsen/logrus"
	"net"
)

//metadata节点也需要注册，供Apinode和datanode使用
//
//metanodeAddr 元数据服务节点地址
//
//nodeAddr 节点当前的值
//
//nodeflag  节点当前是master还是slave
func StartMDeartbeat(metanodeAddr, nodeAddr, nodeflag string) {
	//假如没有成功，直接返回，不发送心跳包了
	client := NewTCPClient(metanodeAddr)
	if client == nil {
		return
	}
	metanodeInfo := fmt.Sprintf("%s-%s", nodeAddr, nodeflag)
	cmd := &Cmd{Name: "set", Key: "metaNodes", Value: metanodeInfo}
	cmd.Run(client)
	//判断执行的错误异常
	if cmd.Error != nil {
		t, ok := cmd.Error.(*net.OpError)
		if ok {
			if t.Op == "write" {
				log.Debug(fmt.Sprintf("元数据服务%s异常,请检查其状态.", metanodeAddr))
			}
		}
	}
}
